package br.com.mftc.efitness.beans;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import br.com.mftc.efitness.excecoes.ExcecaoCamposObrigatoriosNaoPreenchidos;
import br.com.mftc.efitness.excecoes.ExcecaoNegocio;
import br.com.mftc.efitness.util.Variaveis;

@ManagedBean(name = "alterarSenha")
@ViewScoped
public class AlterarSenhaBean {

	@ManagedProperty("#{login}")
	private LoginBean login;
	
	@ManagedProperty("#{mensagens}")
	private MensagensBean mensagens;
	
	@ManagedProperty("#{fachada}")
	private FachadaBean fachada;
	
	private String senhaAtual, novaSenha, confirmeSenha;
	
	@PostConstruct
	public void inicializar() {
		senhaAtual = new String();
		novaSenha = new String();
		confirmeSenha = new String();
	}
	
	public void alterarSenha() {
		try {
			fachada.alterarSenha(login.getUsuario(), senhaAtual, novaSenha, confirmeSenha);
			
			senhaAtual = new String();
			novaSenha = new String();
			confirmeSenha = new String();
			
			mensagens.addMensagem(FacesMessage.SEVERITY_INFO, Variaveis.TITULO_SUCESSO, Variaveis.MODAL_ALTERAR_SENHA_MENSAGEM_SUCESSO);
		} catch (ExcecaoNegocio excecao) {
			mensagens.addMensagem(FacesMessage.SEVERITY_FATAL, excecao);
		} catch (ExcecaoCamposObrigatoriosNaoPreenchidos excecao) {
			mensagens.addMensagem(FacesMessage.SEVERITY_WARN, excecao);
		}
	}
	
	public LoginBean getLogin() {
		return login;
	}

	public void setLogin(LoginBean login) {
		this.login = login;
	}

	public String getSenhaAtual() {
		return senhaAtual;
	}

	public void setSenhaAtual(String senhaAtual) {
		this.senhaAtual = senhaAtual;
	}

	public String getNovaSenha() {
		return novaSenha;
	}

	public void setNovaSenha(String novaSenha) {
		this.novaSenha = novaSenha;
	}

	public String getConfirmeSenha() {
		return confirmeSenha;
	}

	public void setConfirmeSenha(String confirmeSenha) {
		this.confirmeSenha = confirmeSenha;
	}

	public MensagensBean getMensagens() {
		return mensagens;
	}

	public void setMensagens(MensagensBean mensagens) {
		this.mensagens = mensagens;
	}

	public FachadaBean getFachada() {
		return fachada;
	}

	public void setFachada(FachadaBean fachada) {
		this.fachada = fachada;
	}
}